package com.carter.springframework.core.annotation;

import java.lang.annotation.Annotation;

/**
 * 合并注解选择器，它用于在MergedAnnotationFinder找到了多个符合条件的结果时，从这些结果中挑选出最优的作为 MergedAnnotationFinder 的最终返回值
 */

public interface MergedAnnotationSelector <A extends Annotation>{
    // 该合并注解是否是最符合的结果，如果是直接跳过select
    default boolean isBestCandidate(MergedAnnotation<A> annotation) {
        return false;
    }

    //二选一
    MergedAnnotation<A> select(MergedAnnotation<A> existing, MergedAnnotation<A> candidate);
}
